package com.ynet.middleground.riskmanage.service;

import java.util.List;

import javax.validation.Valid;

import com.ynet.core.common.BaseReqObj;
import com.ynet.core.common.ServiceResult;
import com.ynet.middleground.riskmanage.bean.*;
import com.ynet.middleground.riskmanage.dto.*;

/**
 * @author liulx
 * @description 企查查服务定义
 * @date 2020-08-04 21:58
 */
public interface QccService {

    /**
     * 查询对接企查查的服务列表
     *
     * @param req 基础请求对象
     * @return 企查查接口列表
     */
    ServiceResult<List<ServiceDTO>> listServices(@Valid BaseReqObj req);

    /**
     * 企查查服务统计查询
     *
     * @param req 企查查服务统计查询请求信息
     * @return 统计查询结果列表
     */
    ServiceResult<List<QccStatisticDTO>> tatisticQuery(@Valid QccStatisticQueryReqPager req);

    /**
     * 企查查服务统计查询，内管专用
     *
     * @param req 企查查服务统计查询请求信息
     * @return 统计查询结果列表
     */
    ServiceResult<List<QccStatisticDTO>> tatisticQueryForPortAdmin(@Valid QccStatisticQueryReqPager req);

    /**
     * 企业关键字精确获取详细信息
     * 
     * @param req 查询企业基础数据请求信息
     * @return 企业工商详情信息传输对象
     */
    ServiceResult<QichachaAicDetailDTO> getBasicDetailsByName(@Valid CompanyBasicQueryReq req);

    /**
     * 查询企业对外投资列表
     *
     * @param req 企查查分页查询通用基础请求信息
     * @return 对外投资列表
     */
    ServiceResult<List<InvestmentDTO>> listInvestment(@Valid CompanyBaseQueryReqPager req);

    /**
     * 查询股东列表
     *
     * @param req 企查查分页查询通用基础请求信息
     * @return 股东列表
     */
    ServiceResult<List<PartnerDTO>> listPartner(@Valid CompanyBaseQueryReqPager req);

    /**
     * 查询主要人员列表
     *
     * @param req 企查查分页查询通用基础请求信息
     * @return 主要人员列表
     */
    ServiceResult<List<EmployeeDTO>> listEmployee(@Valid CompanyBaseQueryReqPager req);

    /**
     * 查询分支机构列表
     *
     * @param req 企查查分页查询通用基础请求信息
     * @return 主要人员列表
     */
    ServiceResult<List<BranchDTO>> listBranch(@Valid CompanyBaseQueryReqPager req);

    /**
     * 变更记录
     *
     * @param req 查询企业基础数据请求信息
     * @return 变更记录列表
     */
    ServiceResult<List<ChangeDTO>> listChange(@Valid CompanyBasicQueryReq req);

    /**
     * 开庭公告查询
     * 
     * @param req 查询开庭公告请求信息
     * @return 开庭公告信息
     * @author songyf 2020-08-07
     */
    ServiceResult<List<QccCourtNoticeDTO>> searchCourtNotice(@Valid CourtNoticeQueryReqPager req);

    /**
     * 开庭公告详情查询
     * 
     * @param req 查询开庭公告详情请求信息
     * @return 开庭公告详情信息
     * @author songyf 2020-08-10
     */
    ServiceResult<QccCourtNoticeDetailDTO> searchCourtNoticeDetail(@Valid CourtNoticeDetailQueryReq req);

    /**
     * 裁判文书查询
     * 
     * @param req 查询裁判文书
     * @return 裁判文书信息
     * @author songyf 2020-08-11
     */
    ServiceResult<List<JudgmentDocDTO>> searchJudgmentDoc(@Valid JudgmentDocQueryReqPager req);

    /**
     * 裁判文书详情查询
     * 
     * @param req 查询裁判文书
     * @return 裁判文书信息
     * @author songyf 2020-08-11
     */
    ServiceResult<JudgmentDocDetailDTO> searchJudgmentDocDetail(@Valid JudgmentDocDetailQueryReq req);

    /**
     * 法院公告列表信息查询
     * 
     * @param req 查询法院公告列表信息
     * @return 法院公告列表信息
     * @author songyf 2020-08-11
     */
    ServiceResult<List<CourtAnnouncementDTO>> searchCourtAnnouncement(@Valid CompanyBaseQueryReqPager req);

    /**
     * 法院公告详情信息查询
     * 
     * @param req 查询法院公告详情信息
     * @return 法院公告详情信息
     * @author songyf 2020-08-12
     */
    ServiceResult<QccCourtAnnouncementDetailDTO>
        searchCourtAnnouncementDetail(@Valid CourtAnnouncementDetailQueryReq req);

    /**
     * 被执行人核查信息查询
     * 
     * @param req 企查查分页查询基础请求信息
     * @return 被执行人核查信息列表
     * @author liulx
     * @date 2020-08-18 17:47:29
     */
    ServiceResult<ZhiXingCheckResultDTO> listZhixing(@Valid CompanyBaseQueryReqPager req);

    /**
     * 被执行人核查详情信息查询
     *
     * @param req 企查查基本查询请求信息
     * @return 被执行人详情核查信息
     * @author liulx
     * @date 2020-08-18 17:47:29
     */
    ServiceResult<ZhiXingDTO> getZhixingDetail(@Valid QccBaseQueryReq req);

    /**
     * 失信核查查询
     * 
     * @param req 失信核查信息列表
     * @return 失信核查信息列表
     * @author songyf 2020-08-12
     */
    ServiceResult<ShiXinListDTO> searchShiXinList(@Valid ShiXinListQueryReqPager req);

    /**
     * 获取股权冻结信息
     * 
     * @param req 获取股权冻结信息
     * @return 股权冻结信息
     * @author songyf 2020-08-12
     */
    ServiceResult<List<JudicialAssistanceDTO>> searchJudicialAssistance(@Valid CompanyBaseQueryReqPager req);

    /**
     * 获取股权冻结信息
     *
     * @param req 获取股权冻结详情信息
     * @return 股权冻结信息
     * @author songyf 2021-11-29
     */
    ServiceResult<JudicialAssistanceDetailDTO> searchJudicialAssistanceDetail(@Valid JudicialAssistanceQueryReq req);


    /**
     * 立案信息列表查询
     * 
     * @param req 企查查分页查询基础请求信息
     * @return 立案信息列表
     * @author liulx
     */
    ServiceResult<List<CaseFilingDTO>> listCaseFiling(@Valid CourtNoticeQueryReqPager req);

    /**
     * 查询立案详情信息
     * 
     * @param req 企查查基本查询请求信息
     * @return 立案详情信息
     */
    ServiceResult<CaseFilingDetailDTO> getCaseFiling(@Valid QccBaseQueryReq req);

    /**
     * 查询股权出质列表
     *
     * @param req 企查查分页查询基础请求信息
     * @return 股权出质结果信息
     * @author liulx
     */
    ServiceResult<EquityPledgedResultDTO> listEquityPledged(@Valid CompanyBaseQueryReqPager req);

    /**
     * 行政处罚详情信息
     *
     * @param req 企查查基本查询请求信息
     * @return 行政处罚详情信息
     * @author songyf
     */
    ServiceResult<AdministrativePenaltiesDetailDTO> getAdministrativePenaltiesDetail(@Valid QccBaseQueryReq req);

    /**
     * 失信详情
     *
     * @param req 查询失信详情信息
     * @return 失信详情信息
     * @author songyf 2020-08-19
     */
    ServiceResult<ShiXinDTO> searchShiXinDetail(@Valid ShiXinDetailQueryReq req);

    /**
     * 行政处罚核查列表查询
     *
     * @param req 行政处罚核查列表查询
     * @return 行政处罚核查列表查询
     * @author songyf
     */
    ServiceResult<List<AdminPenaltyCheckDTO>> getAdministrativePenaltiesList(@Valid CompanyBaseQueryReqPager req);

}
